/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.escom.administracion.dao.hibernate;

import com.escom.administracion.dao.AlumnoDispositivoDAO;
import com.escom.administracionperfiles.hbm.dto.AlumnoDispositivo;
import com.escom.cliente.exception.DAOException;
import com.escom.hibernate.template.AdminSoportHibernate;
import java.io.Serializable;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author yamil
 */
public class AlumnoDispisitivoDAOHBM  extends AdminSoportHibernate implements AlumnoDispositivoDAO,Serializable{

    @Override
    public void create(AlumnoDispositivo alumno) throws DAOException {
              save(alumno);
    }

    @Override
    public void edit(AlumnoDispositivo alumno) throws DAOException {
        update(alumno);
    }

    @Override
    public void remove(AlumnoDispositivo alumno) throws DAOException {
        delete(alumno);
    }

    @Override
    public AlumnoDispositivo find(Object id) throws DAOException {
        return find(id);
    }

    @Override
    public List<AlumnoDispositivo> findAll() throws DAOException {
        return findAll(AlumnoDispositivo.class);
    }

    @Override
    public int count() {
        return count();
    }

    @Override
    public List<AlumnoDispositivo> findAlumnoByBoleta(int boleta) throws DAOException {
        List<AlumnoDispositivo> l=null;
        Session session = getSession();
        Criteria query = session.createCriteria(AlumnoDispositivo.class);
        query.add(Restrictions.eq("id.boleta", boleta));
        l=query.list();
        session.close();
        return l;
    }

    @Override
    public boolean finAlumnoBoletDispositivo(int boleta, String direccionMac) throws DAOException {
        AlumnoDispositivo l=null;
        Session session = getSession();
        Criteria query = session.createCriteria(AlumnoDispositivo.class);
        query.add(Restrictions.and(Restrictions.eq("id.boleta", boleta),Restrictions.eq("id.direccionmac", direccionMac)));
        query.setMaxResults(1);
        if(!query.list().isEmpty())
        l=(AlumnoDispositivo) query.list().get(0);
        session.close();
        return l!=null?true:false;
    }


}
